package com.edou.base.util;


import java.io.IOException;

import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;

/**
 * 该工具类为ImageMagick封装的命令行类
 * 负责对图片进行裁剪与缩放等功能
 * 高质量
 * @author root
 *
 */
public class ImageIm4Util {
	

	/**
	 *  图片缩放
	 * @param src
	 * @param dest
	 * @param w
	 * @param h
	 * @param image_magick_path 插件安装路径
	 * @throws Exception
	 */
	public static void zoomImage(String src,String dest,int w,int h,String image_magick_path) throws Exception {
		//缩放操纵
		 IMOperation op = new IMOperation();
		 //添加原路径
		 op.addImage(src);
		 //设置宽
		 op.resize(w,h);
		 //设置高
		 //设置缩放后的路径
		 op.addImage(dest);
		 ConvertCmd convert = new ConvertCmd(); 
		//ImageMagick-6.8.9-1-Q16-x86-dll a安装后的路径
		 convert.setSearchPath(image_magick_path);
		 convert.run(op);
		 
	}
	
	/**
     * 裁剪图片
     * @param src
     * @param dest
     * @param x 横坐标
     * @param y 纵坐标
     * @param w 图片宽度
     * @param h 图片高度
     * @param image_magick_path 插件安装路径
     * @throws IOException
     */
	public static void cutImage(String src,String dest,int x,int y,int w,int h,String image_magick_path) throws IOException, InterruptedException, IM4JavaException {   
        IMOperation op=new IMOperation();
		//添加原图片
		op.addImage(src);
		op.crop(w, h, x,y);
		//创建图片处理核心类
		op.addImage(dest);
		ConvertCmd convert = new ConvertCmd();
		convert.setSearchPath(image_magick_path);
		
		convert.run(op);
    }
	
	public static void main(String[] args) {
		try {
			ImageIm4Util.cutImage("d:/11.jpg", "d:/32.jpg", 205, 202,0,30, "D:\\software\\ImageMagick-6.8.9-Q16");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}
